博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于音频文件的上传
阅读量:7078 次
发布时间:2019-06-28

本文共 2529 字,大约阅读时间需要 8 分钟。

图片,音频其实都是文件,只是格式不一样罢了。

格式不一样,程序能检测到的信息就不一样。
比如,图片能检测到宽高。音频则检测不到。

上传它们的时候,根据不同点,进行微调就可以了。

支持mp3格式,wav格式
 
查看录音
(未上传)

后台进行处理

大致处理过程如下:

1.上传至本地服务器
2.上传至云服务器(比如七牛)
3.删除本地服务器文件
4.保存七牛服务器的文件路径至数据库

漏了一步,上传本地服务器之前,进行过滤处理,包括判断大小是否超出,判断类型是否符合等等。

上传到本地的时候,首先要确保文件夹存储,然后确认文件名称不能重复。通常都是使用日期加随机数来避免重复。

如果文件夹不存在,则创建文件夹,并赋予777权限。一切程序都是无敌的,可以调用系统底层的代码,可以创建文件夹和赋予权限。

/** * @param $folders 文件夹名称 * @param string $name 文件名称 * @param float|int $max_size 最大文件大小 * @param array $allowExts 允许上传的类型 * @return mixed */public function upload_audio($folders, $name = 'file' ,$max_size = 1024000 * 50 ,$allowExts = ['mp3','wav']){    if($_FILES[$name]['size'] > $max_size){        $res['error'] = '音频大小不能超过50M!';        return $res;    }    import('ORG.Net.UploadFile');    $upload = new UploadFile();                             // 实例化上传类    $upload->allowExts = $allowExts;                        // 允许上传的文件格式    $upload->maxSize  = $max_size;                          // 设置附件上传大小    $upload->saveRule = time().'_'.mt_rand();    $date_folders = date('Ymd',time());    $upload->savePath =  "site_upload/".$folders.'/'.$date_folders.'/';// 设置附件上传目录    if (!is_dir($upload->savePath)){        @mkdir('./'.$upload->savePath, 0777,true);    }    $upload->upload();    $info = $upload->getUploadFileInfo();//取得成功上传的文件信息    if($info){        vendor('Func.Func');        vendor('Qiniu.Qiniu');        $qiniu = new Qiniu();        $file =  C('SF_HOST'). $upload->savePath . $info[0]['savename'];        $ext = pathinfo($file, PATHINFO_EXTENSION);        $name = time() . mt_rand() . '.' . $ext;        $success = $qiniu->up($file, $name, C('QINIU.BUCKET'));        if($success){            @unlink('./' .$info[0]['savepath'] . $info[0]['savename']);            $res['msg']='ok';            $res['save_name'] = C('CDN.URI') . $name;        }else{            @unlink('./' .$info[0]['savepath'] . $info[0]['savename']);            $res['error'] = '上传失败!!';        }    }else{        $res['error']='上传失败!!';    }    return $res;}

下面是七牛的up方法,

uploadToken($bucketName); list($ret, $error) = $upManager->put($token, $name, file_get_contents($file)); if (!$error) { return $ret; } else { return false; } }}

经过这些折腾,音频上传成功了!

422101-20180615144236043-2049891028.png

转载地址:http://uwcml.baihongyu.com/

你可能感兴趣的文章
吐槽net下没有靠谱的FastDFS的sdk之使用thrift实现JAVA和C#互通
查看>>
XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Khamovniki
查看>>
GridView弹出对话框
查看>>
Latex数学公式中的空格
查看>>
bash 设置
查看>>
Spark项目之电商用户行为分析大数据平台之(九)表的设计
查看>>
Entity Framework常用的查询方式
查看>>
SpringBoot集成Redis实现缓存处理(Spring AOP技术)
查看>>
聚类算法小结
查看>>
【强化学习】python 实现 q-learning 迷宫通用模板
查看>>
wpf设置设计时的ViewModel
查看>>
ORA-00471: DBWR process terminated with error案例
查看>>
ASP.NET Core & Docker & Jenkins 零基础持续集成实战
查看>>
Redesign Your App for iOS 7 之 页面布局【转】
查看>>
简述WebService与.NET Remoting的区别及适应场合
查看>>
对 Sea.js 进行配置 seajs.config
查看>>
VS中几个自动完成快捷键,还算实用
查看>>
DataContext的讨论(1)
查看>>
安装和卸载windows程序
查看>>
linux scp ssh命令不用输入密码
查看>>